#ifndef TRATADORDEREQUISICAO_H
#define TRATADORDEREQUISICAO_H
#include <qtcpserver.h>
#include <QObject>
#include <qtcpsocket.h>
#include <QFile>
#include <QTextStream>
#include <QStringList>

class TratadorDeRequisicao : public QObject
{
    Q_OBJECT
public:
    explicit TratadorDeRequisicao(QObject *parent = 0);

    /** destrutor que é utilizado pra fechar os arquivos
      */
    ~TratadorDeRequisicao();


    QTcpServer * servidor;
    QTcpSocket *clientConnection;

    QFile * arquivoAgencia;
    QFile * arquivoPorta;
    QFile * arquivoClientes;
    QFile * arquivoLog;

    QTextStream * agenciaStream ;
    QTextStream * portaStream;
    QTextStream * clientesStream;
    QTextStream * logStream;

    /** usado para preparar a mensagem que vai ser enviada ao servidor
      */
    QStringList contaAgenciaSeparadas;

    /** metodo que faz o servidor começar a escutar a porta por conexões
      */
    void iniciaServer();

    /** método que retorna o saldo de uma conta se passada uma string contendo conta e agência
      , se for passado um valor único de saldo , a função atualiza o saldo da conta que efetuou a última transação */
    QString saldo(QString contaAgencia);

    QString numeroPorta,idAgencia;


signals:

public slots:
    void novocliente();

};

#endif // TRATADORDEREQUISICAO_H
